| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import { PermissionAction } from '@supabase/shared-types/out/constants'
- import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader'
- import { JWTSecretKeysTable } from '@/components/interfaces/JwtSecrets/jwt-secret-keys-table'
- import DefaultLayout from '@/components/layouts/DefaultLayout'
- import JWTKeysLayout from '@/components/layouts/JWTKeys/JWTKeysLayout'
- import SettingsLayout from '@/components/layouts/ProjectSettingsLayout/SettingsLayout'
- import NoPermission from '@/components/ui/NoPermission'
- import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions'
- import type { NextPageWithLayout } from '@/types'
- const JWTSigningKeysPage: NextPageWithLayout = () => {
- const { can: canReadAPIKeys, isSuccess: isPermissionsLoaded } = useAsyncCheckPermissions(
- PermissionAction.READ,
- 'auth_signing_keys'
- )
- return (
- <>
- {!isPermissionsLoaded ? (
- <GenericSkeletonLoader />
- ) : !canReadAPIKeys ? (
- <NoPermission isFullPage resourceText="access your project's API keys" />
- ) : (
- <JWTSecretKeysTable />
- )}
- </>
- )
- }
- JWTSigningKeysPage.getLayout = (page) => (
- <DefaultLayout>
- <SettingsLayout title="jwt keys">
- <JWTKeysLayout>{page}</JWTKeysLayout>
- </SettingsLayout>
- </DefaultLayout>
- )
- export default JWTSigningKeysPage
|